package com.tanhua.dubbo.server.HtMessageApi;


import com.tanhua.dubbo.server.enums.HtTopState;
import com.tanhua.dubbo.server.enums.HtTotals;
import com.tanhua.dubbo.server.pojo.Publish;
import com.tanhua.dubbo.server.pojo.Publish;
import com.tanhua.dubbo.server.vo.PageInfo;

import java.util.List;

public interface MessageApi {

    /**
     * 修改消息的状态
     *
     * @param publishIds  选中的消息
     * @param htTotals   修改成什么状态
     * @return
     */
    Boolean ChangeStateOfPublish(List<String> publishIds, HtTotals htTotals);


    /**
     * 修改信息是否置顶
     *
     * @param publishId
     * @param stick
     * @return
     */
    Boolean ChangeIsTop(String publishId, HtTopState stick);

    /**
     * 通过动态ID查询publish
     *
     * @param publishId
     * @return
     */
    Publish queryPbublishDetails(String publishId);

    /**
     * 接口:
     * 查询publish列表（全部，或者按照审核状态）
     * 也可以通过消息id单独查询，也可以根据发布时间查询，也可以再时间范围类查询id
     *
     * @param pagesize 分页参数
     * @param page 分页参数
     * @param sortProp 排序字段
     * @param sortOrder 排序方式：ascending 升序 descending 降序
     * @param id  消息id(动态id)
     * @param sd 开始时间
     * @param ed 结束时间
     * @param uid 当前登录者的id（后台管理员id）
     * @param htTotals 审核状态（3，4，5--待审核，已拒绝，已通过）
     * @return 消息列表
     */
    PageInfo<Publish> findPublishList(Integer page, Integer pagesize, String sortProp,
                                      String sortOrder, String id, Long sd, Long ed, String uid, HtTotals htTotals);

    /**
     * 接口：根据状态的种类，插叙其数量
     * @param htTotals 种类（枚举）
     * @return 数量
     */
    Long findTotalsCount(HtTotals htTotals,String uid,String id,Long startTime,Long stopTime);

    Long findUserPublishCount(Long userId);
}
